package com.leetcodehot.problems;

import java.util.HashMap;

public class problems2958 {

    public int maxSubarrayLength(int[] nums, int k) {
        int n = nums.length;
        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
        int max = 0;
        int left = 0;
        for (int right = 0; right < n; right++) {
            int x = nums[right];
            if (map.containsKey(x)) {
                map.put(x, map.get(x) + 1);
            }else{

                map.put(x, 1);
            }
            while(map.get(x)>k){
                map.put(nums[left], map.get(nums[left]) - 1);
                left++;
            }
            max = Math.max(max, right - left + 1);
        }
        return max;
    }
}
